#include<vector>
#include<iostream>
using namespace std;

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        for(vector<int>::iterator itI = nums.begin(); itI != nums.end(); itI++)
        {
            if(itI + 1 == nums.end()) break;
            vector<int>::iterator itJ = itI;
            itJ++;
            while(*itI == *itJ)
            {
                nums.erase(itJ);
                if(itI+1 == nums.end()) break; // 在erase最后一个元素(或pop_back)后，nums.end()-1指向刚被删除的位置，但该位置上的内容是没有被清空的，所以*itI与*itJ依旧相等，得搞一个条件判断break
            }
        }
        return nums.size();
    }
};

int main()
{
    Solution s;
    // vector<int> nums = {0,0,1,1,1,2,2,3,3,4,4};
    vector<int> nums = {1,1,2};

    for(auto i : nums)
    {
        printf("%d,",i);
    }
    printf("\n");

    int num = s.removeDuplicates(nums);

    for(auto i : nums)
    {
        printf("%d,",i);
    }
    printf("\n");

    return 0;
}